package com.br.sae.controls;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.br.sae.conexaobd.SistemaDAO;
import com.br.sae.model.dao.AlunoBD;
import com.br.sae.model.dao.UsuarioBD;
import com.br.sae.model.entitys.Aluno;
import com.br.sae.model.entitys.Usuario;

public class LogicaAlunoCrud implements Logica {

	@Override
	public String executa(HttpServletRequest req, HttpServletResponse res)
			throws Exception {

		String metodo = req.getParameter("Metodo");
		System.out.println("Metodo: "+metodo);
		if (metodo.equals("inserirAluno")) {
			String nome = req.getParameter("nome");
			String sexo = req.getParameter("sexo");
			String nomeMae = req.getParameter("nomeMae");
			String nomePai = req.getParameter("nomePai");
			String rua = req.getParameter("rua");
			int numero = Integer.valueOf(req.getParameter("numero"));
			String bairro = req.getParameter("bairro");
			String cidade = req.getParameter("cidade");
			String estado = req.getParameter("estado");
			String cep = req.getParameter("cep");
			String informacoesAluno = req.getParameter("informacoesAluno");
			String telefone = req.getParameter("telefone");
			String email = req.getParameter("email");
			String dataNascimentoAluno = req.getParameter("dataNascimento");
			String login = req.getParameter("login");
			String senha = req.getParameter("senha");

			Aluno aluno = new Aluno(nome, dataNascimentoAluno, sexo, nomeMae,
					nomePai, rua, numero, bairro, cidade, estado, cep, email,
					informacoesAluno, telefone);
			Usuario usuario = new Usuario(login, senha, "Aluno");
			inserirAluno(aluno, usuario);
			return "/mvc?logica=LogicaFormAluno";
			
		} else if (metodo.equals("alterarAluno")) {
			String nome = req.getParameter("nome");
			String sexo = req.getParameter("sexo");
			String nomeMae = req.getParameter("nomeMae");
			String nomePai = req.getParameter("nomePai");
			String rua = req.getParameter("rua");
			int numero = Integer.valueOf(req.getParameter("numero"));
			String bairro = req.getParameter("bairro");
			String cidade = req.getParameter("cidade");
			String estado = req.getParameter("estado");
			String cep = req.getParameter("cep");
			String informacoesAluno = req.getParameter("informacoesAluno");
			String telefone = req.getParameter("telefone");
			String email = req.getParameter("email");
			String dataNascimentoAluno = req.getParameter("dataNascimento");
			String login = req.getParameter("login");
			String senha = req.getParameter("senha");

			Aluno aluno = new Aluno(nome, dataNascimentoAluno, sexo, nomeMae,
					nomePai, rua, numero, bairro, cidade, estado, cep, email,
					informacoesAluno, telefone);
			Usuario usuario = new Usuario(login, senha, "Aluno");
			aluno.setId(Integer.valueOf(req.getParameter("id")));
			alterarAluno(aluno, usuario);
			return "/mvc?logica=LogicaFormAluno";
		} else {
			excluirAluno(Integer.valueOf(req.getParameter("id")));
			return "/mvc?logica=LogicaFormAluno";
		}

	}

	private void inserirAluno(Aluno aluno, Usuario usuario) {
		AlunoBD alunoBD = new AlunoBD();
		alunoBD.incluirAluno(aluno);		
		UsuarioBD usuarioBD = new UsuarioBD();
		usuario.setId_perfil(aluno.getId());
		usuarioBD.incluirUsuario(usuario);
	}

	private void alterarAluno(Aluno aluno, Usuario usuario) {
		AlunoBD alunoBD = new AlunoBD();
		alunoBD.alterarAluno(aluno);

		UsuarioBD usuarioBD = new UsuarioBD();
		Usuario usu = usuarioBD.consultaUsuario(aluno.getId(), "Aluno");
		usu.setLogin(usuario.getLogin());
		usu.setSenha(usuario.getSenha());
		usuarioBD.alterarUsuario(usu);
	}

	private void excluirAluno(int id) {
		AlunoBD alunoBD = new AlunoBD();
		SistemaDAO sis = new SistemaDAO();
		Aluno aluno = (Aluno) sis.find(Aluno.class, id);
		UsuarioBD usuarioBD = new UsuarioBD();
		Usuario usu = usuarioBD.consultaUsuario(aluno.getId(), "Aluno");
		usuarioBD.removerUsuario(usu);
		alunoBD.removerAluno(aluno);
	}

}
